GOBJECT_INTROSPECTION_CHECK(introspection_required_version)
-##################################################
-# Packagekit module
-#################################################
-
-AC_ARG_ENABLE(packagekit,
- [AS_HELP_STRING([--enable-packagekit=@<:@yes/no/auto@:>@],
- [build PackageKit open-with module [default=auto]])],
- [enable_packagekit="$enableval"],
- [enable_packagekit=auto])
-if test "$enable_packagekit" = "auto"; then
- if test "$os_win32" = "yes"; then
- enable_packagekit=no
- else
- enable_packagekit=yes
- fi
-fi
-
-AC_MSG_CHECKING([whether to use PackageKit])
-build_packagekit=no
-if test "x$enable_packagekit" != "xno"; then
- if test "$os_win32" != "yes"; then
- build_packagekit=yes
- AC_DEFINE(ENABLE_PACKAGEKIT, 1, [define to enable packagekit])
- else
- AC_MSG_ERROR([packagekit support is not available on win32])
- fi
-fi
-AC_MSG_RESULT([$build_packagekit])
-
-AM_CONDITIONAL(ENABLE_PACKAGEKIT, test "x$build_packagekit" = "xyes")
-
##################################################
# colord module
#################################################
echo " Print backends: $PRINT_BACKENDS"
echo " Dynamic modules: $build_dynamic_modules"
echo " Included immodules: $included_immodules"
-echo " PackageKit support: $build_packagekit"
echo " colord support: $have_colord"
echo " Introspection: $found_introspection"
echo " Debugging: $enable_debug"
gtk_semi_private_h_sources = \
gtktextlayout.h
-if ENABLE_PACKAGEKIT
-gtk_appchooser_impl_h_sources = \
- gtkappchooseronlinepk.h
-endif
-
-if ENABLE_PACKAGEKIT
-gtk_appchooser_impl_c_sources = \
- gtkappchooseronlinepk.c
-endif
-
gtk_private_type_h_sources = \
gtkcsstypesprivate.h \
gtktexthandleprivate.h
gtkactionhelper.h \
gtkallocatedbitmaskprivate.h \
gtkappchooserprivate.h \
- gtkappchoosermodule.h \
- gtkappchooseronline.h \
gtkbindingsprivate.h \
gtkbitmaskprivate.h \
gtkbitmaskprivateimpl.h \
gtkwindowprivate.h \
gtktreemenu.h \
$(gtk_private_type_h_sources) \
- $(gtk_clipboard_dnd_h_sources) \
- $(gtk_appchooser_impl_h_sources)
+ $(gtk_clipboard_dnd_h_sources)
# GTK+ C sources to build the library from
deprecated_c_sources = \
gtkappchooserwidget.c \
gtkappchooserbutton.c \
gtkappchooserdialog.c \
- gtkappchoosermodule.c \
- gtkappchooseronline.c \
gtkapplication.c \
gtkapplicationimpl.c \
gtkapplicationwindow.c \
gtkwidgetpath.c \
gtkwindow.c \
gtkwin32theme.c \
- $(gtk_clipboard_dnd_c_sources) \
- $(gtk_appchooser_impl_c_sources)
+ $(gtk_clipboard_dnd_c_sources)
nodist_gtk_c_sources =
gtk_c_sources = $(gtk_base_c_sources)
#include "gtkintl.h"
#include "gtkappchooser.h"
-#include "gtkappchooseronline.h"
-#include "gtkappchooserprivate.h"
#include "gtkappchooserprivate.h"
#include "gtkmessagedialog.h"
GtkWidget *label;
GtkWidget *button;
- GtkWidget *online_button;
GtkWidget *inner_box;
GtkWidget *open_label;
GtkWidget *app_chooser_widget;
GtkWidget *show_more_button;
- GtkAppChooserOnline *online;
- GCancellable *online_cancellable;
-
gboolean show_more_clicked;
gboolean dismissed;
};
G_IMPLEMENT_INTERFACE (GTK_TYPE_APP_CHOOSER,
gtk_app_chooser_dialog_iface_init));
-static void
-show_error_dialog (const gchar *primary,
- const gchar *secondary,
- GtkWindow *parent)
-{
- GtkWidget *message_dialog;
-
- message_dialog = gtk_message_dialog_new (parent, 0,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- NULL);
- g_object_set (message_dialog,
- "text", primary,
- "secondary-text", secondary,
- NULL);
- gtk_dialog_set_default_response (GTK_DIALOG (message_dialog), GTK_RESPONSE_OK);
-
- gtk_widget_show (message_dialog);
-
- g_signal_connect (message_dialog, "response",
- G_CALLBACK (gtk_widget_destroy), NULL);
-}
-
-static void
-search_for_mimetype_ready_cb (GObject *source,
- GAsyncResult *res,
- gpointer user_data)
-{
- GtkAppChooserOnline *online = GTK_APP_CHOOSER_ONLINE (source);
- GtkAppChooserDialog *self = user_data;
- GError *error = NULL;
-
- gdk_threads_enter ();
-
- _gtk_app_chooser_online_search_for_mimetype_finish (online, res, &error);
-
- if (self->priv->dismissed)
- goto out;
-
- if (error != NULL &&
- !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
- {
- show_error_dialog (_("Failed to look for applications online"),
- error->message, GTK_WINDOW (self));
- }
- else
- {
- gtk_widget_set_sensitive (self->priv->online_button, TRUE);
- gtk_app_chooser_refresh (GTK_APP_CHOOSER (self->priv->app_chooser_widget));
- }
-
- out:
- g_clear_object (&self->priv->online_cancellable);
- g_clear_error (&error);
- g_object_unref (self);
-
- gdk_threads_leave ();
-}
-
-static void
-online_button_clicked_cb (GtkButton *b,
- gpointer user_data)
-{
- GtkAppChooserDialog *self = user_data;
-
- self->priv->online_cancellable = g_cancellable_new ();
- gtk_widget_set_sensitive (self->priv->online_button, FALSE);
-
- _gtk_app_chooser_online_search_for_mimetype_async (self->priv->online,
- self->priv->content_type,
- GTK_WINDOW (self),
- self->priv->online_cancellable,
- search_for_mimetype_ready_cb,
- g_object_ref (self));
-}
-
-static void
-app_chooser_online_get_default_ready_cb (GObject *source,
- GAsyncResult *res,
- gpointer user_data)
-{
- GtkAppChooserDialog *self = user_data;
-
- gdk_threads_enter ();
-
- self->priv->online = _gtk_app_chooser_online_get_default_finish (source, res);
-
- if (self->priv->online != NULL &&
- !self->priv->dismissed)
- {
- GtkWidget *action_area;
-
- action_area = gtk_dialog_get_action_area (GTK_DIALOG (self));
- self->priv->online_button = gtk_button_new_with_mnemonic (_("_Find applications online"));
- gtk_box_pack_start (GTK_BOX (action_area), self->priv->online_button,
- FALSE, FALSE, 0);
- gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (action_area), self->priv->online_button,
- TRUE);
- g_signal_connect (self->priv->online_button, "clicked",
- G_CALLBACK (online_button_clicked_cb), self);
-
-
- if (!self->priv->content_type)
- gtk_widget_set_sensitive (self->priv->online_button, FALSE);
-
- gtk_widget_show (self->priv->online_button);
- }
-
- g_object_unref (self);
-
- gdk_threads_leave ();
-}
-
-static void
-ensure_online_button (GtkAppChooserDialog *self)
-{
- _gtk_app_chooser_online_get_default_async (app_chooser_online_get_default_ready_cb,
- g_object_ref (self));
-}
static void
add_or_find_application (GtkAppChooserDialog *self)
}
}
-static void
-cancel_and_clear_cancellable (GtkAppChooserDialog *self)
-{
- if (self->priv->online_cancellable != NULL)
- {
- g_cancellable_cancel (self->priv->online_cancellable);
- g_clear_object (&self->priv->online_cancellable);
- }
-}
-
static void
gtk_app_chooser_dialog_response (GtkDialog *dialog,
gint response_id,
break;
case GTK_RESPONSE_CANCEL:
case GTK_RESPONSE_DELETE_EVENT:
- cancel_and_clear_cancellable (self);
self->priv->dismissed = TRUE;
default :
break;
construct_appchooser_widget (self);
set_dialog_properties (self);
- ensure_online_button (self);
}
static void
GtkAppChooserDialog *self = GTK_APP_CHOOSER_DIALOG (object);
g_clear_object (&self->priv->gfile);
- cancel_and_clear_cancellable (self);
- g_clear_object (&self->priv->online);
self->priv->dismissed = TRUE;
+++ /dev/null
-/*
- * gtkappchoosermodule.c: an extension point for online integration
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#include "config.h"
-
-#include "gtkappchoosermodule.h"
-
-#include <gio/gio.h>
-
-#include "gtkappchooseronline.h"
-
-#ifdef ENABLE_PACKAGEKIT
-#include "gtkappchooseronlinepk.h"
-#endif
-
-G_LOCK_DEFINE_STATIC (registered_ep);
-
-void
-_gtk_app_chooser_module_ensure (void)
-{
- static gboolean registered_ep = FALSE;
- GIOExtensionPoint *ep;
-
- G_LOCK (registered_ep);
-
- if (!registered_ep)
- {
- registered_ep = TRUE;
-
- ep = g_io_extension_point_register ("gtkappchooser-online");
- g_io_extension_point_set_required_type (ep, GTK_TYPE_APP_CHOOSER_ONLINE);
-
-#ifdef ENABLE_PACKAGEKIT
- _gtk_app_chooser_online_pk_get_type ();
-#endif
- }
-
- G_UNLOCK (registered_ep);
-}
+++ /dev/null
-/*
- * gtkappchoosermodule.h: an extension point for online integration
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#ifndef __GTK_APP_CHOOSER_MODULE_H__
-#define __GTK_APP_CHOOSER_MODULE_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-void _gtk_app_chooser_module_ensure (void);
-
-G_END_DECLS
-
-#endif /* __GTK_APP_CHOOSER_MODULE_H__ */
+++ /dev/null
-/*
- * gtkappchooseronline.h: an extension point for online integration
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#include "config.h"
-
-#include "gtkappchooseronline.h"
-
-#include "gtkappchoosermodule.h"
-#include "gtkintl.h"
-
-#include <gio/gio.h>
-
-G_DEFINE_INTERFACE_WITH_CODE (GtkAppChooserOnline, _gtk_app_chooser_online, G_TYPE_OBJECT,
- g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_ASYNC_INITABLE);)
-
-static void
-_gtk_app_chooser_online_default_init (GtkAppChooserOnlineInterface *iface)
-{
- /* do nothing */
-}
-
-GtkAppChooserOnline *
-_gtk_app_chooser_online_get_default_finish (GObject *source,
- GAsyncResult *result)
-{
- GtkAppChooserOnline *retval;
-
- retval = GTK_APP_CHOOSER_ONLINE (g_async_initable_new_finish (G_ASYNC_INITABLE (source),
- result, NULL));
-
- return retval;
-}
-
-void
-_gtk_app_chooser_online_get_default_async (GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GIOExtensionPoint *ep;
- GIOExtension *extension;
- GList *extensions;
-
- _gtk_app_chooser_module_ensure ();
-
- ep = g_io_extension_point_lookup ("gtkappchooser-online");
- extensions = g_io_extension_point_get_extensions (ep);
-
- if (extensions != NULL)
- {
- /* pick the first */
- extension = extensions->data;
- g_async_initable_new_async (g_io_extension_get_type (extension), G_PRIORITY_DEFAULT,
- NULL, callback, user_data, NULL);
- }
-}
-
-void
-_gtk_app_chooser_online_search_for_mimetype_async (GtkAppChooserOnline *self,
- const gchar *content_type,
- GtkWindow *parent,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GtkAppChooserOnlineInterface *iface;
-
- g_return_if_fail (GTK_IS_APP_CHOOSER_ONLINE (self));
-
- iface = GTK_APP_CHOOSER_ONLINE_GET_IFACE (self);
-
- (* iface->search_for_mimetype_async) (self, content_type, parent, cancellable, callback, user_data);
-}
-
-gboolean
-_gtk_app_chooser_online_search_for_mimetype_finish (GtkAppChooserOnline *self,
- GAsyncResult *res,
- GError **error)
-{
- GtkAppChooserOnlineInterface *iface;
-
- g_return_val_if_fail (GTK_IS_APP_CHOOSER_ONLINE (self), FALSE);
-
- iface = GTK_APP_CHOOSER_ONLINE_GET_IFACE (self);
-
- return ((* iface->search_for_mimetype_finish) (self, res, error));
-}
+++ /dev/null
-/*
- * gtkappchooseronline.h: an extension point for online integration
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#ifndef __GTK_APP_CHOOSER_ONLINE_H__
-#define __GTK_APP_CHOOSER_ONLINE_H__
-
-#include <glib.h>
-
-#include <gtk/gtkwindow.h>
-#include <gio/gio.h>
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_APP_CHOOSER_ONLINE (_gtk_app_chooser_online_get_type ())
-#define GTK_APP_CHOOSER_ONLINE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_APP_CHOOSER_ONLINE, GtkAppChooserOnline))
-#define GTK_IS_APP_CHOOSER_ONLINE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_APP_CHOOSER_ONLINE))
-#define GTK_APP_CHOOSER_ONLINE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_APP_CHOOSER_ONLINE, GtkAppChooserOnlineInterface))
-
-typedef struct _GtkAppChooserOnline GtkAppChooserOnline;
-typedef struct _GtkAppChooserOnlineInterface GtkAppChooserOnlineInterface;
-
-struct _GtkAppChooserOnlineInterface {
- GTypeInterface g_iface;
-
- /* Methods */
- void (*search_for_mimetype_async) (GtkAppChooserOnline *self,
- const gchar *content_type,
- GtkWindow *parent,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-
- gboolean (*search_for_mimetype_finish) (GtkAppChooserOnline *self,
- GAsyncResult *res,
- GError **error);
-};
-
-GType _gtk_app_chooser_online_get_type (void) G_GNUC_CONST;
-
-void _gtk_app_chooser_online_get_default_async (GAsyncReadyCallback callback,
- gpointer user_data);
-GtkAppChooserOnline * _gtk_app_chooser_online_get_default_finish (GObject *source,
- GAsyncResult *result);
-
-void _gtk_app_chooser_online_search_for_mimetype_async (GtkAppChooserOnline *self,
- const gchar *content_type,
- GtkWindow *parent,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean _gtk_app_chooser_online_search_for_mimetype_finish (GtkAppChooserOnline *self,
- GAsyncResult *res,
- GError **error);
-
-#endif /* __GTK_APP_CHOOSER_ONLINE_H__ */
+++ /dev/null
-/*
- * gtkappchooseronlinepk.c: packagekit module for app-chooser
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#include "config.h"
-
-#include "gtkappchooseronlinepk.h"
-
-#include "gtkappchooseronline.h"
-#ifdef GDK_WINDOWING_X11
-#include "x11/gdkx.h"
-#endif
-
-#include <gio/gio.h>
-
-#define gtk_app_chooser_online_pk_get_type _gtk_app_chooser_online_pk_get_type
-static void app_chooser_online_iface_init (GtkAppChooserOnlineInterface *iface);
-static void app_chooser_online_pk_async_initable_init (GAsyncInitableIface *iface);
-
-struct _GtkAppChooserOnlinePkPrivate {
- GSimpleAsyncResult *init_result;
- guint watch_id;
-
- GDBusProxy *proxy;
- GSimpleAsyncResult *result;
- GtkWindow *parent;
-};
-
-G_DEFINE_TYPE_WITH_CODE (GtkAppChooserOnlinePk, gtk_app_chooser_online_pk,
- G_TYPE_OBJECT,
- G_ADD_PRIVATE (GtkAppChooserOnlinePk)
- G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE,
- app_chooser_online_pk_async_initable_init)
- G_IMPLEMENT_INTERFACE (GTK_TYPE_APP_CHOOSER_ONLINE,
- app_chooser_online_iface_init)
- g_io_extension_point_implement ("gtkappchooser-online",
- g_define_type_id,
- "packagekit", 10));
-
-static void
-gtk_app_chooser_online_pk_dispose (GObject *obj)
-{
- GtkAppChooserOnlinePk *self = GTK_APP_CHOOSER_ONLINE_PK (obj);
-
- g_clear_object (&self->priv->result);
- g_clear_object (&self->priv->proxy);
-
- G_OBJECT_CLASS (gtk_app_chooser_online_pk_parent_class)->dispose (obj);
-}
-
-static void
-gtk_app_chooser_online_pk_class_init (GtkAppChooserOnlinePkClass *klass)
-{
- GObjectClass *oclass = G_OBJECT_CLASS (klass);
-
- oclass->dispose = gtk_app_chooser_online_pk_dispose;
-}
-
-static void
-gtk_app_chooser_online_pk_init (GtkAppChooserOnlinePk *self)
-{
- self->priv = gtk_app_chooser_online_pk_get_instance_private (self);
-}
-
-static gboolean
-pk_search_mime_finish (GtkAppChooserOnline *obj,
- GAsyncResult *res,
- GError **error)
-{
- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
-
- return !g_simple_async_result_propagate_error (simple, error);
-}
-
-static void
-install_mime_types_ready_cb (GObject *source,
- GAsyncResult *res,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = user_data;
- GDBusProxy *proxy = G_DBUS_PROXY (source);
- GError *error = NULL;
- GVariant *variant;
-
- variant = g_dbus_proxy_call_finish (proxy, res, &error);
-
- if (variant == NULL)
- {
- /* don't show errors if the user cancelled the installation explicitely
- * or if PK wasn't able to find any apps
- */
- if (g_strcmp0 (g_dbus_error_get_remote_error (error), "org.freedesktop.PackageKit.Modify.Cancelled") != 0 &&
- g_strcmp0 (g_dbus_error_get_remote_error (error), "org.freedesktop.PackageKit.Modify.NoPackagesFound") != 0)
- g_simple_async_result_set_from_error (self->priv->result, error);
-
- g_error_free (error);
- }
-
- g_simple_async_result_complete (self->priv->result);
- g_clear_object (&self->priv->result);
-}
-
-static void
-pk_search_mime_async (GtkAppChooserOnline *obj,
- const gchar *content_type,
- GtkWindow *parent,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = GTK_APP_CHOOSER_ONLINE_PK (obj);
- guint xid = 0;
- GdkWindow *window;
- const gchar *mime_types[2];
-
- self->priv->result = g_simple_async_result_new (G_OBJECT (self),
- callback, user_data,
- _gtk_app_chooser_online_search_for_mimetype_async);
-
-#ifdef GDK_WINDOWING_X11
- window = gtk_widget_get_window (GTK_WIDGET (parent));
- if (GDK_IS_X11_WINDOW (window))
- xid = GDK_WINDOW_XID (window);
-#endif
-
- mime_types[0] = content_type;
- mime_types[1] = NULL;
-
- g_dbus_proxy_call (self->priv->proxy,
- "InstallMimeTypes",
- g_variant_new ("(u^ass)",
- xid,
- mime_types,
- "hide-confirm-search"),
- G_DBUS_CALL_FLAGS_NONE,
- G_MAXINT, /* no timeout */
- cancellable,
- install_mime_types_ready_cb,
- self);
-}
-
-static void
-app_chooser_online_iface_init (GtkAppChooserOnlineInterface *iface)
-{
- iface->search_for_mimetype_async = pk_search_mime_async;
- iface->search_for_mimetype_finish = pk_search_mime_finish;
-}
-
-static void
-pk_proxy_created_cb (GObject *source,
- GAsyncResult *result,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = user_data;
- GDBusProxy *proxy;
-
- proxy = g_dbus_proxy_new_finish (result, NULL);
-
- if (proxy == NULL)
- {
- g_simple_async_result_set_op_res_gboolean (self->priv->init_result, FALSE);
- }
- else
- {
- g_simple_async_result_set_op_res_gboolean (self->priv->init_result, TRUE);
- self->priv->proxy = proxy;
- }
-
- g_simple_async_result_complete (self->priv->init_result);
- g_clear_object (&self->priv->init_result);
-}
-
-static void
-pk_appeared_cb (GDBusConnection *conn,
- const gchar *name,
- const gchar *owner,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = user_data;
-
- /* create the proxy */
- g_dbus_proxy_new (conn, 0, NULL,
- "org.freedesktop.PackageKit",
- "/org/freedesktop/PackageKit",
- "org.freedesktop.PackageKit.Modify",
- NULL,
- pk_proxy_created_cb,
- self);
-
- g_bus_unwatch_name (self->priv->watch_id);
-}
-
-static void
-pk_vanished_cb (GDBusConnection *conn,
- const gchar *name,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = user_data;
-
- /* just return */
- g_simple_async_result_set_op_res_gboolean (self->priv->init_result, FALSE);
- g_simple_async_result_complete (self->priv->init_result);
-
- g_bus_unwatch_name (self->priv->watch_id);
-
- g_clear_object (&self->priv->init_result);
-}
-
-static gboolean
-app_chooser_online_pk_init_finish (GAsyncInitable *init,
- GAsyncResult *res,
- GError **error)
-{
- return g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (res));
-}
-
-static void
-app_chooser_online_pk_init_async (GAsyncInitable *init,
- int io_priority,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
- GtkAppChooserOnlinePk *self = GTK_APP_CHOOSER_ONLINE_PK (init);
-
- self->priv->init_result = g_simple_async_result_new (G_OBJECT (self),
- callback, user_data,
- _gtk_app_chooser_online_get_default_async);
-
- self->priv->watch_id =
- g_bus_watch_name (G_BUS_TYPE_SESSION,
- "org.freedesktop.PackageKit",
- G_BUS_NAME_WATCHER_FLAGS_AUTO_START,
- pk_appeared_cb,
- pk_vanished_cb,
- self,
- NULL);
-}
-
-static void
-app_chooser_online_pk_async_initable_init (GAsyncInitableIface *iface)
-{
- iface->init_async = app_chooser_online_pk_init_async;
- iface->init_finish = app_chooser_online_pk_init_finish;
-}
+++ /dev/null
-/*
- * gtkappchooseronlinepk.h: an extension point for online integration
- *
- * Copyright (C) 2010 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Cosimo Cecchi <ccecchi@redhat.com>
- */
-
-#ifndef __GTK_APP_CHOOSER_ONLINE_PK_H__
-#define __GTK_APP_CHOOSER_ONLINE_PK_H__
-
-#include <gtk/gtkappchooseronline.h>
-#include <glib.h>
-
-#define GTK_TYPE_APP_CHOOSER_ONLINE_PK (_gtk_app_chooser_online_pk_get_type ())
-#define GTK_APP_CHOOSER_ONLINE_PK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_APP_CHOOSER_ONLINE_PK, GtkAppChooserOnlinePk))
-#define GTK_APP_CHOOSER_ONLINE_PK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_APP_CHOOSER_ONLINE_PK, GtkAppChooserOnlinePkClass))
-#define GTK_IS_APP_CHOOSER_ONLINE_PK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_APP_CHOOSER_ONLINE_PK))
-#define GTK_IS_APP_CHOOSER_ONLINE_PK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_APP_CHOOSER_ONLINE_PK))
-#define GTK_APP_CHOOSER_ONLINE_PK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_APP_CHOOSER_ONLINE_PK, GtkAppChooserOnlinePkClass))
-
-typedef struct _GtkAppChooserOnlinePk GtkAppChooserOnlinePk;
-typedef struct _GtkAppChooserOnlinePkClass GtkAppChooserOnlinePkClass;
-typedef struct _GtkAppChooserOnlinePkPrivate GtkAppChooserOnlinePkPrivate;
-
-struct _GtkAppChooserOnlinePk {
- GObject parent;
-
- GtkAppChooserOnlinePkPrivate *priv;
-};
-
-struct _GtkAppChooserOnlinePkClass {
- GObjectClass parent_class;
-};
-
-GType _gtk_app_chooser_online_pk_get_type (void);
-
-#endif /* __GTK_APP_CHOOSER_ONLINE_PK_H__ */